package org.lanqiao.music.system.service.impl;

import org.lanqiao.music.system.entity.AlbumMusic;
import org.lanqiao.music.system.dao.AlbumMusicDao;
import org.lanqiao.music.system.service.AlbumMusicService;
import org.lanqiao.music.system.vo.MusicVO;
import org.springframework.stereotype.Service;
import com.github.pagehelper.PageInfo;
import com.github.pagehelper.PageHelper;
import org.lanqiao.music.common.utils.PageDTO;

import javax.annotation.Resource;
import java.util.List;

/**
 * (AlbumMusic)表服务实现类
 *
 * @author makejava
 * @since 2024-08-15 20:50:29
 */
@Service("albumMusicService")
public class AlbumMusicServiceImpl implements AlbumMusicService {
    @Resource
    private AlbumMusicDao albumMusicDao;

    /**
     * 通过ID查询单条数据
     * @return 实例对象
     */
    @Override
    public AlbumMusic queryById( ) {
        return this.albumMusicDao.queryById();
    }

    /**
     * 分页查询
     *
     * @param albumMusic 筛选条件
     * @return 查询结果
     */
    @Override
    public PageInfo<AlbumMusic> queryByPage(AlbumMusic albumMusic, PageDTO pageDTO) {
        PageHelper.startPage(pageDTO.getPageNum(),pageDTO.getPageSize());
        PageInfo page = new PageInfo<>(this.albumMusicDao.queryAllByLimit(albumMusic));
        return page;
    }

    /**
     * 新增数据
     *
     * @param albumMusic 实例对象
     * @return 实例对象
     */
    @Override
    public AlbumMusic insert(AlbumMusic albumMusic) {
        this.albumMusicDao.insert(albumMusic);
        return albumMusic;
    }

    /**
     * 修改数据
     *
     * @param albumMusic 实例对象
     * @return 实例对象
     */
    @Override
    public AlbumMusic update(AlbumMusic albumMusic) {
        this.albumMusicDao.update(albumMusic);
        return this.queryById();
    }

    /**
     * 通过主键删除数据
     * @return 是否成功
     */
    @Override
    public boolean deleteById( ) {
        return this.albumMusicDao.deleteById() > 0;
    }

    @Override
    public List<MusicVO> getMusicDetailsByAlbumId(Integer albumId) {
        return albumMusicDao.getMusicDetailsByAlbumId(albumId);
    }
}
